# -*- coding: utf-8 -*-
"""
@Time : 2025/3/30 23:06
@Author : ChenXiaoliang
@Email : middlegod@sina.com
@File : get_daily_funds_ranks.py
@Desc : 获取每日基金的各个维度的排名（前几名） 并发邮件
"""
import akshare as ak
import time


def get_daily_funds_ranks():
    """
    获取基金的按照日增长率、近1周、近1月、近3月、近6月、近1年的排名(前10)
    :return: 返回基金列表
    """
    fund_open_fund_rank_em_df = ak.fund_open_fund_rank_em(symbol="全部")
    fund_open_fund_rank_em_df['日期'] = fund_open_fund_rank_em_df['日期'].astype('str')

    sort_by_day_funds = fund_open_fund_rank_em_df.sort_values(by=['日增长率'], ascending=False)[
        ['基金代码', '基金简称', '日期', '日增长率']].head(10)
    sort_by_week_funds = fund_open_fund_rank_em_df.sort_values(by="近1周", ascending=False)[
        ['基金代码', '基金简称', '日期', '近1周']].head(10)
    sort_by_month_funds = fund_open_fund_rank_em_df.sort_values(by="近1月", ascending=False)[
        ['基金代码', '基金简称', '日期', '近1月']].head(10)
    sort_by_3_month_funds = fund_open_fund_rank_em_df.sort_values(by="近3月", ascending=False)[
        ['基金代码', '基金简称', '日期', '近3月']].head(10)
    sort_by_6_month_funds = fund_open_fund_rank_em_df.sort_values(by="近6月", ascending=False)[
        ['基金代码', '基金简称', '日期', '近6月']].head(10)
    sort_by_year_funds = fund_open_fund_rank_em_df.sort_values(by="近1年", ascending=False)[
        ['基金代码', '基金简称', '日期', '近1年']].head(10)

    return sort_by_day_funds, sort_by_week_funds, sort_by_month_funds, sort_by_3_month_funds, sort_by_6_month_funds, sort_by_year_funds


if __name__ == '__main__':
    r = get_daily_funds_ranks()
    print(r)
